package com.exception;
/*
java异常处理机制：try...catch
try{
    代码片段
}catch(xxx Exception e ){
     当try的代码片段出现xxxException时的补救措施
}
 */
public class TryCatchDemo {
    public static void main(String[] args) {
        System.out.println("程序开始");
        //异常分 编译异常 和 运行异常
        /*
        运行异常
        出现异常时 jvm虚拟机会new 一个异常对象 去解决
        先找代码 再找代码所在的方法  没找到解决方法就会去 找jvm 关闭程序
         */

        //try里面 从报错代码起 后面的代码不会执行
        //不同的异常 分开处理
        try {
            String line1 = "";
            System.out.println(line1.charAt(0));
            String line = null;
            System.out.println(line.length());


        /*}catch (NullPointerException e ){
            System.out.println("出现了空指针异常并解决了");
        }catch (StringIndexOutOfBoundsException e){
            System.out.println("出现了字符串下标越界异常并解决了");*/
        }catch (NullPointerException |StringIndexOutOfBoundsException e ){
            System.out.println("多个可能出现的异常可以合并处理");
        } catch(Exception e ){//可以在最后捕获超类型异常，凡是该异常的子类型都可以被捕获处理
            System.out.println("出了个错，我不知道，但是已经解决了");
        }
        System.out.println("程序结束");
    }
}
